SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

CREATE PROCEDURE [dbo].[pje_porComisionesDeServicio] @idInscripcion as integer ,@pje as float output,@resultado as int  AS
set nocount on --para anular el trafico econ el cliente (no salen los print)
set dateformat mdy 

declare  @idAgente as int,@idCargoGenerico as int,@idAsignaturaGenerica as int, @idTipoConvocatoria as int ,@idlocalidad as int,@fechaCierreDeInscripciones as datetime

declare @FechaLimite as datetime
declare @Cargogen as int,@AsigGen as int
declare @topeComisiones as float
declare @puntaje as float,@r as float
declare @FechaIni as datetime
declare @FechaFin as datetime
declare @sum as float

DECLARE @Error INT

BEGIN TRANSACTION
             SET @ERROR=0

select @topeComisiones= (select valor1 from tb_parametros where idparametro=46)
select  @idAgente=i.Agente,@IdcargoGenerico = i.CargoGenerico,@AsigGen=i.AsignaturaGenerica,@idtipoConvocatoria=Conv.TipoConvocatoria,@FechaLimite=Conv.FechaLimite,@fechaCierreDeInscripciones=Conv.fechaCierre
	from 	tb_inscripcionesConvocatorias i 
		join tb_Convocatorias conv on i.Convocatoria=conv.idConvocatoria 
	where i.idInscripcionConvocatoria=@idInscripcion


if  @idTipoConvocatoria in (1,2,3,4,5,9) -- TipoConvocatoria = 12  ingreso,interinatos y suplencias
	begin

		DECLARE C CURSOR FORWARD_ONLY FOR

		SELECT distinct sa.FechaInicio,sa.FechaFin,
				ISNULL( 0.10*(datediff(dd,sa.FechaInicio,isnull(sa.FechaFin,getdate()))/30),0)

		 FROM 
			tb_ComisionesValorables sa 
			join tb_gruposDeIncumbencias G on G.idGrupoIncumbencia=sa.GrupoIncumbencias
--			join tb_reluniongsgu R on r.idgrupounion = G.idGrupoIncumbencia
			join tb_incumbencias h on G.idGrupoincumbencia=h.grupoIncumbencia
		WHERE (sa.Agente=@idagente and  h.CargoGenerico=@IdCargogenerico and h.AsignaturaGenerica=@AsigGen and sa.FechaPresentacion <= @FechaLimite) or (sa.Agente=@idagente and sa.grupoincumbencias =99 and sa.FechaPresentacion <= @FechaLimite) --and sa.FechaAlta >= @FechaLimite
		SET @Error = @@ERROR 
		IF @Error <> 0 GOTO Salir

		OPEN c
		FETCH NEXT FROM C INTO @FechaIni,@FechaFin,@Sum
		SET @pje=0
		WHILE @@FETCH_STATUS = 0
		BEGIN
			SET @pje=@pje+@Sum
			FETCH NEXT FROM C INTO @FechaIni,@FechaFin,@Sum
		END

		CLOSE c
		DEALLOCATE c

		IF @pje >@topeComisiones set @pje=@topeComisiones
		SET @resultado = 0
	END
	ELSE 

PRINT @pje

Salir:
IF @Error <> 0 
	ROLLBACK TRANSACTION
ELSE 
	COMMIT TRANSACTION
GO
GRANT EXECUTE ON  [dbo].[pje_porComisionesDeServicio] TO [Juntas]
GO
